from zope.interface import Interface

from zope.schema import List, TextLine, Object

from meercat.mapreduce.interfaces import IReducer



class IWebProcessor(Interface):
    def __call__(self, metadata={}):
        """ Perform an action on a dictionary of metadata in place """

class IWebReducer(IReducer):
    processors = List(value_type=Object(schema=IWebProcessor), default=[])
    formats = List(value_type=TextLine(), required=True, default=['web'])
